package com.example.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.example.model.dto.BaseDTO;
import com.example.validator.group.AddGroup;
import com.example.validator.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
@Data
@Schema(description = "代码生成表DTO")
public class GenTableInfoDTO extends BaseDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @Null(message = "{id.null}", groups = AddGroup.class)
    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
    @Schema(description = "id")
    private Long id;

    @Schema(description = "表名")
    private String tableName;

    @Schema(description = "类名")
    private String className;

    @Schema(description = "功能名")
    private String tableComment;

    @Schema(description = "作者")
    private String author;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "项目包名")
    private String packageName;

    @Schema(description = "项目版本号")
    private String version;

    @Schema(description = "后端访问路径")
    private String backendUrl;

    @Schema(description = "后端生成路径")
    private String backendPath;

    @Schema(description = "前端生成路径")
    private String frontendPath;

    @Schema(description = "模块名")
    private String moduleName;

    @Schema(description = "子模块名")
    private String subModuleName;

    @Schema(description = "数据源ID")
    private Long datasourceId;

    @Schema(description = "基类ID")
    private Long baseclassId;

    private List<GenTableFieldDTO> fields;
    private GenTableFieldDTO pk;
}